import java.util.*;

import javax.swing.*;

public class Main extends JFrame implements Runnable {
	
	private Thread hilo, hilo3;
	private Pieza1 p1;
	//private Pieza2 p2;
	private Pieza3 p3;
	//private Pieza4 p4;
	private Pieza5 p5;
	//private Pieza6 p6;
	//private Pieza7 p7;
	protected Monitor m1 = new Monitor();
	private int siguiente = 0;
	private ArrayList piezas = new ArrayList();
	
	public Main() {		
		this.setBounds(400, 400, 300, 400);
		this.setLayout(null);		
		hilo3 = new Thread(this);
		hilo3.start();
	}	
	
	public void nuevaPieza(int pieza) {	
		synchronized(m1) {
			if (pieza == 1) {
				p1 = new Pieza1(m1);
				hilo = new Thread(p1);
				p1.setBounds(0, 0, 150, 400);
				this.add(p1);
				hilo.start();
				p1.pieza1.requestFocus();
				piezas.add(p1);
			}			
			/*if (pieza == 2) {
				p2 = new Pieza2(m1);
				hilo2 = new Thread(p2);
				p2.setBounds(50, 50, 300, 400);
				this.add(p2);
				hilo2.start();
				p2.pieza2.requestFocus();
			}*/
			if (pieza == 3) {
				p3 = new Pieza3(m1);
				hilo = new Thread(p3);
				p3.setBounds(0, 0, 150, 400);
				this.add(p3);
				hilo.start();
				p3.pieza1.requestFocus();
				piezas.add(p3);
			}
			/*if (pieza == 4) {
				p2 = new Pieza2(m1);
				hilo2 = new Thread(p2);
				p2.setBounds(50, 50, 300, 400);
				this.add(p2);
				hilo2.start();
				p2.pieza2.requestFocus();
			}*/
			if (pieza == 5) {
				p5 = new Pieza5(m1);
				hilo = new Thread(p5);
				p5.setBounds(0, 0, 150, 400);
				this.add(p5);
				hilo.start();
				p5.pieza2.requestFocus();
				piezas.add(p5);
			}
			/*if (pieza == 6) {
				p2 = new Pieza2(m1);
				hilo2 = new Thread(p2);
				p2.setBounds(50, 50, 300, 400);
				this.add(p2);
				hilo2.start();
				p2.pieza2.requestFocus();
			}*/
			/*if (pieza == 7) {
				p2 = new Pieza2(m1);
				hilo2 = new Thread(p2);
				p2.setBounds(50, 50, 300, 400);
				this.add(p2);
				hilo2.start();
				p2.pieza2.requestFocus();
			}*/
			
		}
	}
	
	public void choca() {
		
	}
	
	public static void main(String[] args) {
		Main m1 = new Main();		
		m1.setVisible(true);
	}

	//@Override
	public void run() {		
		synchronized(m1) {			
			while (true) {
				do {
					siguiente = (int)(Math.random()*7+1);
				}
				while (siguiente != 1 && siguiente != 3 && siguiente != 5);			
				this.nuevaPieza(1);
				
				
				while (p1.pieza1.getY() <= 340 && p1.pieza2.getY() <= 340 && p1.pieza3.getY() <=340 && p1.pieza4.getY() <= 340) {
					try {				
						p1.pieza1.setLocation(p1.pieza1.getX(), p1.pieza1.getY() + 15);					
						p1.seguir();					
						m1.wait(100);					
					}
					catch (Exception e) {
						System.out.println("tralala");
					}
				}	
				/*try {
					m1.wait();
				} 
				catch (InterruptedException e) {				
					System.out.println("kk");
				}
				m1.notify();*/
				
				
				
				
				
			}
		}				
	}
}
